package com.mh.service;

import com.mh.dto.R;
import com.mh.dto.vo.OrderShowVo;
import com.mh.pojo.OrderInfos;

import java.util.List;
import java.util.Map;

/**
 * 订单信息服务接口
 */

public interface OrderInfosService {

    /**
     * 根据用户ID获取所有订单信息
     * @param userId ·
     * @return ·
     */
    R<List<OrderShowVo>> getAllOrderByUserId(String userId);

    /**
     * 根据用户ID获取各订单状态数量，用于展示徽标
     * @param userId ·
     * @return ·
     */
    R<Map<Integer, Long>> getOrderStatusCount(String userId);

    /**
     * 根据订单ID获取订单信息
     * @param orderId ·
     * @return ·
     */
    R<OrderInfos> getOrderInfoById(String orderId);

    /**
     * 取消订单
     * @param orderId ·
     * @return ·
     */
    R<String> cancelOrder(String orderId);

    /**
     * 删除订单
     * @param orderId ·
     * @return ·
     */
    R<String> deleteOrder(String orderId);
}
